Method and apparatus for scheduling viewing of web pages in a data processing system

ABSTRACT

A method, apparatus, and computer instructions for scheduling viewing of a plurality of selected Web pages. A respective periodicity for viewing each respective Web page of a plurality of selected Web pages is scheduled. Upon retrieval of a respective Web page at a specified periodicity, a determination is made as to whether the respective Web page has changed in which the respective Web page is a retrieved Web page. The retrieved Web page is placed in a queue of unviewed Web pages for later viewing by a user in response to the Web page having changed.

BACKGROUND OF THE INVENTION

[0001] 1. Technical Field

[0002] The present invention relates generally to an improved dataprocessing system, and in particular, to a method and apparatus formanaging Web pages. Still more particularly, the present inventionprovides a method and apparatus for managing viewing of Web pages.

[0003] 2. Description of Related Art

[0004] The Internet, also referred to as an “internetwork”, is a set ofcomputer networks, possibly dissimilar, joined together by means ofgateways that handle data transfer and the conversion of messages from aprotocol of the sending network to a protocol used by the receivingnetwork. When capitalized, the term “Internet” refers to the collectionof networks and gateways that use the Transmission ControlProtocol/Internet Protocol (TCP/IP) suite of protocols.

[0005] The Internet has become a cultural fixture as a source of bothinformation and entertainment. Many businesses are creating Internetsites as an integral part of their marketing efforts, informingconsumers of the products or services offered by the business orproviding other information seeking to engender brand loyalty. Manyfederal, state, and local government agencies are also employingInternet sites for informational purposes, particularly agencies whichmust interact with virtually all segments of society such as theInternal Revenue Service and secretaries of state. Providinginformational guides and/or searchable databases of online publicrecords may reduce operating costs. Further, the Internet is becomingincreasingly popular as a medium for commercial transactions.

[0006] Currently, the most commonly employed method of transferring dataover the Internet is to employ the World Wide Web environment, alsocalled simply “the Web”. Other Internet resources exist for transferringinformation, such as File Transfer Protocol (FTP) and Gopher, but havenot achieved the popularity of the Web. In the Web environment, serversand clients effect data transaction using the Hypertext TransferProtocol (HTTP), a known protocol for handling the transfer of variousdata files (e.g., text, still graphic images, audio, motion video,etc.). The information in various data files is formatted forpresentation to a user by a standard page description language, theHypertext Markup Language (HTML). In addition to basic presentationformatting, HTML allows developers to specify “links” to other Webresources identified by a Uniform Resource Locator (URL). A URL is aspecial syntax identifier defining a communications path to specificinformation. Each logical block of information accessible to a client,called a “page” or a “Web page”, is identified by a URL. The URLprovides a universal, consistent method for finding and accessing thisinformation, not necessarily for the user, but mostly for the user's Web“browser”. A browser is a program capable of submitting a request forinformation identified by an identifier, such as, for example, a URL. Auser may enter a URL through a graphical user interface (GUI) for thebrowser to access a source of content. The URL includes a domain nameplus a “file part” that points to a Web page within that domain. Thedomain name portion of the URL is automatically converted to theInternet Protocol (IP) address by a domain name system (DNS), which is aservice that translates the symbolic name entered by the user into an IPaddress by looking up the domain name in a database.

[0007] Often times, a user may have one or more Web “publications” thatthe user wishes to read on some periodic basis. These Web publicationsmay include articles or magazines published on the Web, cartoons orvideos updated on some periodic basis, or some other informational site.Some of these Web sites are updated daily, while others are updatedweekly or monthly. In some cases, the Web site may be updated at randomtimes. Currently, a user is required to remember to visit a particularWeb site at the appropriate time to be able to see the new pages orinformation. Often times, it may be hard to remember when sites areupdated, especially when a user reads large numbers of sites. With sitesthat are updated on a random basis, a user is currently required tofrequently return to that site in order to view new information orchanges.

[0008] Therefore, it would be advantageous to have an improved method,apparatus, and computer instructions for viewing Web pages after theyhave been updated without requiring the user to remember to return tothe Web site.

SUMMARY OF THE INVENTION

[0009] The present invention provides a method, apparatus, and computerinstructions for scheduling viewing of a plurality of selected Webpages. A respective periodicity for viewing each respective Web page ofa plurality of selected Web pages is scheduled. Upon retrieval of arespective Web page at a specified periodicity, a determination is madeas to whether the respective Web page has changed in which therespective Web page is a retrieved Web page. The retrieved Web page isplaced in a queue of unviewed Web pages for later viewing by a user inresponse to the Web page having changed.

BRIEF DESCRIPTION OF THE DRAWINGS

[0010] The novel features believed characteristic of the invention areset forth in the appended claims. The invention itself, however, as wellas a preferred mode of use, further objectives and advantages thereof,will best be understood by reference to the following detaileddescription of an illustrative embodiment when read in conjunction withthe accompanying drawings, wherein:

[0011]FIG. 1 depicts a pictorial representation of a network of dataprocessing systems in which the present invention may be implemented;

[0012]FIG. 2 is a block diagram of a data processing system that may beimplemented as a server in accordance with a preferred embodiment of thepresent invention;

[0013]FIG. 3 is a block diagram illustrating a data processing system inwhich the present invention may be implemented;

[0014]FIG. 4 is a diagram illustrating components used in schedulingviewing of Web pages in accordance with a preferred embodiment of thepresent invention;

[0015]FIG. 5 is a diagram illustrating a Web page queue in accordancewith a preferred embodiment of the present invention;

[0016] FIGS. 6A-6D are diagrams illustrating a graphical user interfacefor scheduling and viewing Web pages in accordance with a preferredembodiment of the present invention;

[0017]FIG. 7 is a flowchart of a process used for registering an addressin accordance with a preferred embodiment of the present invention;

[0018]FIG. 8 is a flowchart of a process used for retrieving Web pagesbased on a schedule in accordance with a preferred embodiment of thepresent invention;

[0019]FIG. 9 is a flowchart of a process used for retrieving Web pagesbased on a schedule in accordance with a preferred embodiment of thepresent invention;

[0020]FIG. 10 is a flowchart of a process used for monitoring a Web pagefor changes in accordance with a preferred embodiment of the presentinvention; and

[0021]FIG. 11 is a flowchart of a process used for viewing pages inaccordance with a preferred embodiment of the present invention.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT

[0022] With reference now to the figures, FIG. 1 depicts a pictorialrepresentation of a network of data processing systems in which thepresent invention may be implemented. Network data processing system 100is a network of computers in which the present invention may beimplemented. Network data processing system 100 contains a network 102,which is the medium used to provide communications links between variousdevices and computers connected together within network data processingsystem 100. Network 102 may include connections, such as wire, wirelesscommunication links, or fiber optic cables.

[0023] In the depicted example, server 104 is connected to network 102along with storage unit 106. In addition, clients 108, 110, and 112 areconnected to network 102. These clients 108, 110, and 112 may be, forexample, personal computers or network computers. In the depictedexample, server 104 provides data, such as boot files, operating systemimages, and applications to clients 108-112. Clients 108, 110, and 112are clients to server 104. Network data processing system 100 mayinclude additional servers, clients, and other devices not shown. In thedepicted example, network data processing system 100 is the Internetwith network 102 representing a worldwide collection of networks andgateways that use the TCP/IP suite of protocols to communicate with oneanother. At the heart of the Internet is a backbone of high-speed datacommunication lines between major nodes or host computers, consisting ofthousands of commercial, government, educational and other computersystems that route data and messages. Of course, network data processingsystem 100 also may be implemented as a number of different types ofnetworks, such as for example, an intranet, a local area network (LAN),or a wide area network (WAN). FIG. 1 is intended as an example, and notas an architectural limitation for the present invention.

[0024] Referring to FIG. 2, a block diagram of a data processing systemthat may be implemented as a server, such as server 104 in FIG. 1, isdepicted in accordance with a preferred embodiment of the presentinvention. Data processing system 200 may be a symmetric multiprocessor(SMP) system including a plurality of processors 202 and 204 connectedto system bus 206. Alternatively, a single processor system may beemployed. Also connected to system bus 206 is memory controller/cache208, which provides an interface to local memory 209. I/O bus bridge 210is connected to system bus 206 and provides an interface to I/O bus 212.Memory controller/cache 208 and I/O bus bridge 210 may be integrated asdepicted.

[0025] Peripheral component interconnect (PCI) bus bridge 214 connectedto I/O bus 212 provides an interface to PCI local bus 216. A number ofmodems may be connected to PCI local bus 216. Typical PCI busimplementations will support four PCI expansion slots or add-inconnectors. Communications links to clients 108-112 in FIG. 1 may beprovided through modem 218 and network adapter 220 connected to PCIlocal bus 216 through add-in boards.

[0026] Additional PCI bus bridges 222 and 224 provide interfaces foradditional PCI local buses 226 and 228, from which additional modems ornetwork adapters may be supported. In this manner, data processingsystem 200 allows connections to multiple network computers. Amemory-mapped graphics adapter 230 and hard disk 232 may also beconnected to I/O bus 212 as depicted, either directly or indirectly.

[0027] Those of ordinary skill in the art will appreciate that thehardware depicted in FIG. 2 may vary. For example, other peripheraldevices, such as optical disk drives and the like, also may be used inaddition to or in place of the hardware depicted. The depicted exampleis not meant to imply architectural limitations with respect to thepresent invention.

[0028] The data processing system depicted in FIG. 2 may be, forexample, an IBM eServer pSeries system, a product of InternationalBusiness Machines Corporation in Armonk, N.Y., running the AdvancedInteractive Executive (AIX) operating system or LINUX operating system.

[0029] With reference now to FIG. 3, a block diagram illustrating a dataprocessing system is depicted in which the present invention may beimplemented. Data processing system 300 is an example of a clientcomputer. Data processing system 300 employs a peripheral componentinterconnect (PCI) local bus architecture. Although the depicted exampleemploys a PCI bus, other bus architectures such as Accelerated GraphicsPort (AGP) and Industry Standard Architecture (ISA) may be used.Processor 302 and main memory 304 are connected to PCI local bus 306through PCI bridge 308. PCI bridge 308 also may include an integratedmemory controller and cache memory for processor 302. Additionalconnections to PCI local bus 306 may be made through direct componentinterconnection or through add-in boards. In the depicted example, localarea network (LAN) adapter 310, SCSI host bus adapter 312, and expansionbus interface 314 are connected to PCI local bus 306 by direct componentconnection. In contrast, audio adapter 316, graphics adapter 318, andaudio/video adapter 319 are connected to PCI local bus 306 by add-inboards inserted into expansion slots. Expansion bus interface 314provides a connection for a keyboard and mouse adapter 320, modem 322,and additional memory 324. Small computer system interface (SCSI) hostbus adapter 312 provides a connection for hard disk drive 326, tapedrive 328, and CD-ROM drive 330. Typical PCI local bus implementationswill support three or four PCI expansion slots or add-in connectors.

[0030] An operating system runs on processor 302 and is used tocoordinate and provide control of various components within dataprocessing system 300 in FIG. 3. The operating system may be acommercially available operating system, such as Windows XP, which isavailable from Microsoft Corporation. An object oriented programmingsystem such as Java may run in conjunction with the operating system andprovide calls to the operating system from Java programs or applicationsexecuting on data processing system 300. “Java” is a trademark of SunMicrosystems, Inc. Instructions for the operating system, theobject-oriented operating system, and applications or programs arelocated on storage devices, such as hard disk drive 326, and may beloaded into main memory 304 for execution by processor 302.

[0031] Those of ordinary skill in the art will appreciate that thehardware in FIG. 3 may vary depending on the implementation. Otherinternal hardware or peripheral devices, such as flash read-only memory(ROM), equivalent nonvolatile memory, or optical disk drives and thelike, may be used in addition to or in place of the hardware depicted inFIG. 3. Also, the processes of the present invention may be applied to amultiprocessor data processing system.

[0032] As another example, data processing system 300 may be astand-alone system configured to be bootable without relying on sometype of network communication interfaces As a further example, dataprocessing system 300 may be a personal digital assistant (PDA) device,which is configured with ROM and/or flash ROM in order to providenon-volatile memory for storing operating system files and/oruser-generated data.

[0033] The depicted example in FIG. 3 and above-described examples arenot meant to imply architectural limitations. For example, dataprocessing system 300 also may be a notebook computer or hand heldcomputer in addition to taking the form of a PDA. Data processing system300 also may be a kiosk or a Web appliance.

[0034] Turning now to FIG. 4, a diagram illustrating components used inscheduling viewing of Web pages is depicted in accordance with apreferred embodiment of the present invention. In this example, server400 and server 402 may be implemented using a data processing system,such as data processing system 200 in FIG. 2. Client 404 may beimplemented using a data processing system, such as data processingsystem 300 in FIG. 3.

[0035] A user at client 404 may view Web pages through browser 406.Specifically, browser 406 may request a Web page from server 400 bysending the request to Web server process 408. In response, Web serverprocess 408 retrieves an appropriate Web page from Web pages database410 and returns the Web page to browser 406 for presentation. If theparticular universal resource locator (URL) points to a Web page thatchanges, the user may schedule viewing of the Web page without having toreturn to the Web page each day, week, or on whatever time basis the Webpage is updated at that URL.

[0036] The mechanism of the present invention allows a user to registeran interest in a Web page by entering the URL for a Web page and toschedule some time to view or retrieve Web pages for viewing. Thescheduling may be, for example, periodic or a one-time event. Many Webpublications would be scheduled on a periodic basis while other events,such as the winner of a contest, may be scheduled for a singleretrieval. Alternatively, the Web page pointed to by the URL may bemonitored for content changes. Such monitoring may involve storing thelast modified time of the page or an actual copy of the page andperiodically checking for updates or changes to the page. The mechanismof the present invention may store URLs in a file or cache for use inretrieving Web pages for review. Alternatively, the Web pages themselvesmay be retrieved and stored in a cache for later viewing.

[0037] These processes may be implemented in browser 406, or in someother program, such as, for example, plug-in 412. A browser is theprogram that serves as a front end to the World Wide Web on theInternet. In order to view a Web site, a URL is typed into the browser'slocation field. Browser 406 may be implemented using various well-knownbrowsers, such as Internet Explorer from Microsoft Corporation or Operafrom Opera Software. A plug-in is an auxiliary program that works with amajor software package to enhance its capability.

[0038] In this case, plug-in 412 is used to enhance browser 406. In thiscase, plug-in 412 may retrieve Web pages from registered addresses inWeb page queue 414. Web pages retrieved by plug-in 412 may be stored inassociation with URLs. Further, the pages also may be placed in an orderbased on, for example, date modified, frequency of updates, or on someuser selected priority. For example, a user may want to view Web pagesupdated on a daily basis before viewing Web pages updated on a weeklybasis.

[0039] Alternatively, the mechanism of the present invention may beimplemented on a remote data processing system, such as server 402. Inthis case, Web server process 416 in server 402 includes the processesfor registering a URL as well as storing Web pages in Web page queue418. In this type of implementation, a user may enter an address to Webserver process 416 at browser 406. The user may log in or be validatedvia another mechanism, such as a cookie. After the log in, the user maybe “seamlessly” forwarded to a chosen home page at which the user mayregister and schedule addresses for Web pages as well as view Web pages.In either case, a user may be informed via an indicator, such as apop-up window or a frame, when a page view event occurs and may have theoption of viewing the page, aborting viewing of the page, or delayingviewing of the page. A page view event occurs, in these examples, whenan unviewed page is stored or queued for viewing by a user. Anotherfeature of the present invention includes providing an indication of aregistered page that has not changed since the last viewing by the user.

[0040] With reference now to FIG. 5, a diagram illustrating a Web pagequeue is depicted in accordance with a preferred embodiment of thepresent invention. In this example, Web page queue 500 is an example ofa Web page queue, such as Web page queue 414 or Web page queue 418 inFIG. 4.

[0041] As illustrated, Web page queue 500 contains URLs 502, 504, and506. These URLs are stored in Web page queue 500 when an update to theparticular page pointed to by these URLs has changed. As describedabove, these changes may be anticipated as occuring on a periodic basisor by monitoring the Web page for changes. With these URLs, themechanism of the present invention may retrieve the Web pages identifiedby these pointers for presentation to the user for review. These URLsare the URLs registered by the user and are placed in this queue when itis time to view a particular Web page based on the particular scheduleor monitoring selected by the user.

[0042] In addition, Web page queue 500 also includes Web pages 508, 510,512, 514, and 516. These Web pages are examples of pages retrieved basedon a schedule set up by the user. Web pages 508, 510, and 512 areassociated with one URL, while Web pages 514 and 516 are associated withanother URL. A user may be prompted to view one of these Web pages asretrieved if the user is logged in or if the plug-in is executing. Ifthe user has not logged in or has not looked at pages over a period oftime, these pages may be accumulated in Web page queue 500 for laterviewing. Further, a Web page queue may include information such aswhether a registered page has been changed since the last viewing by auser. In addition, changes to a particular page may be stored within Webpage queue 500. In other words, if a registered Web page changes threetimes, all three instances of these pages may be stored in Web pagequeue 500, such as Web pages 508, 510, and 512, which are associatedwith a single URL. In this manner, a user may view all of the changes orupdates to a Web page since the last viewing of a particular registeredpage. These pages may be stored in chronological order for presentationto the user. All versions of a registered Web page may be stored withinWeb page queue 500 with indicators of viewed pages and unviewed pages.Alternatively, only unviewed pages may be retained within Web page queue500.

[0043] Further, an indication may be provided to indicate to the userwhether a particular page has changed. Also, the number of versions of apage also may be indicated to a user. These indications may be presentedin various fashions, such as, for example, the use of a watermark acrossthe page or text in a status bar in the browser.

[0044] These examples illustrate Web pages associated with addresses,such as URLs. In addition or alternatively, the Web pages or URLs storedin Web page queue 500 may be ordered based on some criteria, which maybe preset or selected by the user. Criteria may be based on, forexample, how often the Web pages are updated, on the date the Web pagewas updated, or based on some priority assigned by the user.

[0045] Turning now to FIGS. 6A-6D, diagrams illustrating a graphicaluser interface for scheduling and viewing Web pages are depicted inaccordance with a preferred embodiment of the present invention. Theseinterfaces are examples of interfaces that may be presented in abrowser, such as browser 406 in FIG. 4.

[0046] In FIG. 6A, menu 600 is displayed within browser 602. Addressesmay be registered and removed through a user manipulating pointer 604 toselect “add” button 606 or “delete” button 608. A schedule of alladdresses may be viewed through selection of “view schedule” button 610.Upon selection of “add” button 606, pop-up window 612 is presented toallow the user to register an address by typing in the URL in field 614.The addition of an address may be cancelled by selecting “cancel” button616.

[0047] If the address entered into field 614 is correct and the userselects “okay” button 618, then pop-up window 620 in FIG. 6B ispresented to the user. Pop-up window 620 provides a user with an optionto select a scheduling mechanism through the selection of check box 622or check box 624. If the user selects check box 622, drop-down menu 626is provided to allow the user to select a period during which pages fromthe address are retrieved. In this example, the periods are hourly,daily, and weekly. Selection of one of these options results in aschedule being set for the registered address. For example, if daily isselected, the Web page at the registered address will be pulled on adaily basis beginning on the day on which the URL was registered.Alternatively, by selecting check box 624, a monitoring mechanism isused in which changes in the content of the Web page are checked todetermine whether to retrieve the Web page at the registered address.Changes may be identified in various ways. For example, the lastmodified time of the page may be stored and compared to that of the pageeach time the address is checked. This option is especially useful forsituations in which the Web page may be changed or updated on a randombasis, rather than on some predictable periodic basis. This monitoringoption also is useful if a user knows an address is updatedperiodically, but does not remember the date on which the update occurs.

[0048] Selection of “cancel” button 628 results in pop-up window 620being removed from presentation without setting up a schedule. Selectionof “okay” button 630 results in the selections being added to theschedule. By selecting “view schedule” button 610, pop-up window 632 inFIG. 6C is presented. This pop-up window contains a schedule ofaddresses to be checked from which Web pages are to be retrieved ormonitored. In this example, entries 634, 636, and 638 are present in theschedule. Each entry includes a URL and a schedule type, such as daily,weekly, or monitored. A user may delete one of these schedules byselecting the schedule and selecting “delete” button 608. In addition,entries 634, 636, and 638, also may include indications to tell a userwhether a page corresponding to the URL has changed since the user haslast viewed the particular registered page. This indication may beprovided through various graphical mechanisms, such as highlighting thetext in the entry, displaying the text in an entry in a different coloror font, or by adding a graphical icon next to a particular entry. Thesetypes of indications may be used or not used as an option set by theuser.

[0049] When a Web page is retrieved, or when the user starts browser 602and unviewed Web pages are present, menu 640 in FIG. 6D is presented tothe user. In this example, menu 640 includes “next” button 642,“previous” button 644, “postpone” button 646, and “mark not viewed”button 648. “Next” button 642 and “previous” button 644 allow Web pagesstored in the Web page queue to be presented to the user. Selection of“next” button 642 results in the next Web page in the queue beingpresented, while the selection of “previous” button 644 allows aprevious Web page to be redisplayed in browser 602. Depending on theparticular implementation, the retrieval of the Web page may beperformed by using a URL stored in the queue and retrieving the Web pagefor that URL.

[0050] “Postpone” button 646 allows for the user to postpone viewing theWeb pages until a later time. Selection of this button results in menu640 being removed from display. Selection of “mark not viewed” button648 allows a Web page being presented in browser 602 to be marked as notviewed. As a result, the next time browser 602 is started, menu 640 willbe presented because at least one Web page has not been viewed. Theseexamples illustrate a local implementation of the scheduling and viewingprocesses. Of course, similar menus may be presented to the user in aremote implementation through the use of applets. Alternatively, thedifferent fields and controls may be presented and handled through HTMLpages with the different menus being presented in a first frame and thestored Web pages being presented in a second frame. Further, thepresentation of the menu may take other forms, such as, for example, amultiple browser window interface.

[0051] Depending on the particular implementation, the handling ofviewed pages may vary. Pages may continue to be stored until somethreshold limit is reached. Alternatively, pages may be discarded afterthey are viewed or stored in another location by the user. If URLs arestored in the cache, the URLs may be marked with a flag or some otherindicator to indicate unviewed pages. Also, URLs for viewed pages may bediscarded from the cache while URLs for unviewed pages may be retainedin the cache.

[0052] Turning now to FIG. 7, a flowchart of a process used forregistering an address is depicted in accordance with a preferredembodiment of the present invention. The process illustrated in FIG. 7may be implemented in a plug-in or server, such as plug-in 412 or Webserver process 416 in FIG. 4.

[0053] The process begins by receiving a user input to add a page (step700). This user input may be received through a menu, such as pop-upmenu 600 in FIG. 6A. A URL is requested (step 702) and the options arepresented (step 704). The URL may be entered into a pop-up window suchas pop-up window 612 in FIG. 6A. The options may be presented through awindow, such as pop-up window 620 in FIG. 6B. The process waits for userinput selecting an option (step 706). The Web page is added to theschedule (step 708) and the process terminates thereafter.

[0054] With reference now to FIG. 8, a flowchart of a process used forretrieving Web pages based on a schedule is depicted in accordance witha preferred embodiment of the present invention. The process illustratedin FIG. 8 may be implemented in a plug-in or server, such as plug-in 412or Web server process 416 in FIG. 4.

[0055] The process begins by selecting an item from a schedule (step800). The item is one that has not been selected for processing. Adetermination is made as to whether it is time to retrieve a Web page(step 802). This determination may be made by identifying the periodduring which a page is to be retrieved, such as daily or weekly. If theperiod of time has elapsed, then it is time to retrieve the Web page andthe Web page is retrieved (step 804). The Web page is stored in a queue(step 806). In these examples, the queue is a Web page queue, such asWeb page queue 414 or Web page queue 418 in FIG. 4. The pages are storedin the queue using some sort of priority or ordering system. This may bedefault ordering or one selected by the user. For example, the pages maybe ordered based on the time of retrieval, in association with a URL, orbased on the time of retrieval and a URL.

[0056] Next a determination is made as to whether more unselected itemsare present in the schedule (step 808). If more unselected items are notpresent in the schedule, the process terminates. Otherwise, the processreturns to step 800 as described above.

[0057] With reference again to step 802, if it is not time to retrieve aWeb page or the time has not elapsed, the process proceeds to step 808as described above.

[0058] With reference now to FIG. 9, a flowchart of a process used forretrieving Web pages based on a schedule is depicted in accordance witha preferred embodiment of the present invention. The process illustratedin FIG. 9 may be implemented in a plug-in or server, such as plug-in 412or Web server process 416 in FIG. 4.

[0059] The process begins by selecting an item from a schedule (step900). The item is one that has not been selected for processing. Adetermination is made as to whether it is time to retrieve a Web page(step 902). This determination may be made by identifying the periodduring which a page is to be retrieved, such as daily or weekly. If theperiod of time has elapsed, then it is time to view the Web page and theURL for the Web page is stored in the queue (step 904). In theseexamples, the queue is a Web page queue, such as Web page queue 414 orWeb page queue 418 in FIG. 4. These URLs are stored in the queue usingsome sort of priority or ordering system. This may be default orderingor one selected by the user. For example, the URLs may be ordered basedon the time of retrieval, or based on the time of retrieval and apriority selected by a user.

[0060] Next, after the URL is stored in the queue, a determination ismade as to whether more unselected items are present in the schedule(step 906). If more unselected items are not present in the schedule,the process terminates. Otherwise, the process returns to step 900 asdescribed above.

[0061] With reference again to step 902, if it is not time to retrieve aWeb page or the time has not elapsed, the process proceeds to step 906as described above.

[0062] Turning now to FIG. 10, a flowchart of a process used formonitoring a Web page for changes is depicted in accordance with apreferred embodiment of the present invention. The process illustratedin FIG. 10 may be implemented in a plug-in or server, such as plug-in412 or Web server process 416 in FIG. 4.

[0063] The process begins by retrieving a Web page (step 1000). Adetermination is made as to whether the content in the Web page haschanged (step 1002). This determination may be made in various ways. Forexample, a last modified time of the page, stored from the lastretrieval of the Web page, may be compared to the last modified time ofthe Web page retrieved in step 1000. If the current page contains anewer last modified time, then the content is changed. If the lastmodified time is the same, then no change in the content is assumed tohave occurred. Alternatively, a copy of the page may be stored from aprevious retrieval and compared to the retrieved page to determinewhether differences in content are present. Changes in content also maybe identified through page signatures, such as checksums for the pages.If the content in the Web page has changed, the Web page is stored in aqueue (step 1004) and the process terminates thereafter.

[0064] Returning again to step 1002, if the content of the Web page hasnot changed, the process terminates.

[0065] With reference now to FIG. 11, a flowchart of a process used forviewing pages is depicted in accordance with a preferred embodiment ofthe present invention. The process illustrated in FIG. 11 may beimplemented in a plug-in or server, such as plug-in 412 or Web serverprocess 416 in FIG. 4.

[0066] The process begins by waiting for unviewed pages to be present inthe queue (step 1100). When unviewed pages are present in the queue, aprompt or some other alert is presented to the user to indicate thatpages are available for viewing (step 1102). Next, the process waits toreceive a user input (step 1104). In these examples, the user input isreceived through a menu, such as menu 640 in FIG. 6D. When a user inputis received, a determination is made as to whether the user input is aselection of the “next” button (step 1106). If the user input is not aselection of the “next” button, a determination is made as to whetherthe user input is a selection of the “previous” button (step 1108). Ifthe user input is not a selection of the “previous” button, adetermination is made as to whether to mark the Web page as not viewed(step 1110). If the Web page is not to be marked not viewed, adetermination is made as to whether the user input is the selection of a“postpone” button (step 1112). If the user input is to postpone viewingof the Web pages, the process terminates.

[0067] Returning again to step 1112, if user input does not postponeviewing of the Web pages, the process returns to step 1104 as describedabove. With reference again to step 1110, if the Web page is to bemarked as not viewed, the Web page currently being presented is markedas not viewed (step 1114) and the process returns to step 1104. Withrespect to step 1114, if the page is marked as not viewed, this pagealso would be returned to the end of the queue. Referring again to step1108, if the user input is a selection of the “previous” button, theprevious Web page in the queue is presented (step 1116) and the processreturns to step 1104. With reference again to step 1106, if the userinput is the selection of the “next” button, the next Web page in thequeue is presented (step 1118) and the process returns to step 1104. Asdescribed above, the order in which the pages are presented is based onthe ordering of pages or URLs within the queue. Again, this ordering maybe based on some default scheme or one defined by the user.

[0068] Thus, the present invention provides an improved method,apparatus, and computer instructions for retrieving and viewing Webpages, which may be updated on some periodic or random basis. Themechanism provides an automatic and seamless mechanism for retrievingWeb pages based on a schedule set up by the user. These Web pages arepresented to the user and may be viewed sequentially in an order basedon some scheme. In this manner, a user does not have to continuallycheck a URL for a Web page that is randomly updated. Further, the userdoes not have to remember when pages are updated and check thoseaddresses.

[0069] It is important to note that while the present invention has beendescribed in the context of a fully functioning data processing system,those of ordinary skill in the art will appreciate that the processes ofthe present invention are capable of being distributed in the form of acomputer readable medium of instructions and a variety of forms and thatthe present invention applies equally regardless of the particular typeof signal bearing media actually used to carry out the distribution.Examples of computer readable media include recordable-type media, suchas a floppy disk, a hard disk drive, a RAM, CD-ROMs, DVD-ROMs, andtransmission-type media, such as digital and analog communicationslinks, wired or wireless communications links using transmission forms,such as, for example, radio frequency and light wave transmissions. Thecomputer readable media may take the form of coded formats that aredecoded for actual use in a particular data processing system.

[0070] The description of the present invention has been presented forpurposes of illustration and description, and is not intended to beexhaustive or limited to the invention in the form disclosed. Manymodifications and variations will be apparent to those of ordinary skillin the art. The embodiment was chosen and described in order to bestexplain the principles of the invention, the practical application, andto enable others of ordinary skill in the art to understand theinvention for various embodiments with various modifications as aresuited to the particular use contemplated.

What is claimed is:
 1. A method in a data processing system forscheduling viewing of a plurality of selected Web pages, the methodcomprising: scheduling a respective periodicity for viewing eachrespective Web page of a plurality of selected Web pages; upon retrievalof a respective Web page at a specified periodicity, determining whetherthe respective Web page has changed, wherein the respective Web page isa retrieved Web page; and responsive to the retrieved Web page havingchanged, placing the retrieved Web page in a queue of unviewed Web pagesfor later viewing by a user.
 2. The method of claim 1 furthercomprising: placing the unviewed Web pages in an order according to aset of criteria.
 3. The method of claim 2, wherein the set of criteriaincludes at least one of frequency of update, degree of change, and apriority of a Web page.
 4. The method of claim 1 further comprising:presenting the queue of unviewed Web pages to the user; and responsiveto a particular user input, placing an unviewed Web page into anotherqueue.
 5. The method of claim 1, wherein the data processing system is aserver and the user is located at a client.
 6. The method of claim 1,wherein the scheduling, determining, and placing steps are executed by aplug-in executing on the data processing system.
 7. The method of claim1, wherein the determining step comprises: comparing the retrieved Webpage with respect to a corresponding retrieved Web page.
 8. The methodof claim 1, wherein the determining step comprises: comparing a lastmodified date in the retrieved Web page with a last modified date for acorresponding retrieved Web page stored in the queue.
 9. The method ofclaim 1, further comprising: presenting an indicator in association witheach respective Web page of the plurality of Web pages in which theindicator indicates a change since a last viewing of each respective Webpage by the user.
 10. A method in a data processing system forscheduling viewing of a plurality of selected Web pages, the methodcomprising: scheduling a respective periodicity for viewing eachrespective Web page of a plurality of selected Web pages; at a specifiedperiodicity, determining whether the respective Web page has changed,wherein the respective Web page is a retrieved Web page; and responsiveto the Web page having changed, placing a universal resource locator forthe retrieved Web page in a queue of unviewed Web pages for use in laterviewing of the Web page by a user.
 11. A method in a data processingsystem for retrieving Web pages, the method comprising: identifying aWeb page for retrieval using an identifier; using the identifier toretrieve the Web page based on a schedule set for the Web page, whereinthe Web page forms a retrieved Web page after the Web page has beenretrieved; and storing the retrieved Web page in a queue with otherretrieved Web pages for later viewing.
 12. The method of claim 11,wherein the schedule is set by a user input.
 13. The method of claim 11further comprising: displaying the retrieved Web pages stored in thequeue in an order specified by a policy.
 14. The method of claim 13,wherein the policy includes at least one of association of Web pages,frequency of update, degree of change, and a priority of a Web page. 15.The method of claim 11, wherein the schedule is one of daily, hourly,weekly, or monthly.
 16. The method of claim 11 further comprising:comparing the retrieved Web page with another retrieved Web pageretrieved using the identifier; and preventing initiation of the storingstep if the retrieved Web page matches the another retrieved Web page.17. The method of claim 11, wherein the identifier is a universalresource locator.
 18. The method of claim 11, wherein the identifyingstep, the using step, and the storing step are performed in one of aplug-in, a browser, or a server process.
 19. The method of claim 11further comprising: displaying the Web pages in the queue in response toa user input.
 20. A data processing system for scheduling viewing of aplurality of selected Web pages, the data processing system comprising:a bus system; a communications unit connected to the bus system; amemory connected to the bus system, wherein the memory includes a set ofinstructions; and a processing unit connected to the bus system, whereinthe processing unit executes the set of instructions to schedule arespective periodicity for viewing each respective Web page of aplurality of selected Web pages; upon retrieval of a respective Web pageat a specified periodicity, determine whether the respective Web pagehas changed in which the respective Web page is a retrieved Web page;and place the retrieved Web page in a queue of unviewed Web pages forlater viewing by a user in response to the retrieved Web page havingchanged.
 21. A data processing system for scheduling viewing of aplurality of selected Web pages, the data processing system comprising:a bus system; a communications unit connected to the bus system; amemory connected to the bus system, wherein the memory includes a set ofinstructions; and a processing unit connected to the bus system, whereinthe processing unit executes the set of instructions to schedule arespective periodicity for viewing each respective Web page of aplurality of selected Web pages; at a specified periodicity, determinewhether the respective Web page has changed, wherein the respective Webpage is a retrieved Web page; and place a universal resource locator forthe retrieved Web page in a queue of unviewed Web pages for use in laterviewing of the Web page by a user in response to the Web page havingchanged.
 22. A data processing system for retrieving Web pages, the dataprocessing system comprising: a bus system; a communications unitconnected to the bus system; a memory connected to the bus system,wherein the memory includes a set of instructions; and a processing unitconnected to the bus system, wherein the processing unit executes theset of instructions to identify a Web page for retrieval using anidentifier; use the identifier to retrieve the Web page based on aschedule set for the Web page, wherein the Web page forms a retrievedWeb page after the Web page has been retrieved; and store the retrievedWeb page in a queue with other retrieved Web pages for later viewing.23. A data processing system for scheduling viewing of a plurality ofselected Web pages, the data processing system comprising: schedulingmeans for scheduling a respective periodicity for viewing eachrespective Web page of a plurality of selected Web pages; determiningmeans, upon retrieval of a respective Web page at a specifiedperiodicity, for determining whether the respective Web page has changedin which the respective Web page is a retrieved Web page; and placingmeans, responsive to the retrieved Web page having changed, for placingthe retrieved Web page in a queue of unviewed Web pages for laterviewing by a user.
 24. The data processing system of claim 23 whereinthe placing means is a first placing means and further comprising:second placing means for placing the unviewed Web pages in an orderaccording to a set of criteria.
 25. The data processing system of claim24, wherein the set of criteria includes at least one of frequency ofupdate, degree of change, and a priority of a Web page.
 26. The dataprocessing system of claim 23 wherein the placing means is a firstplacing means and further comprising: presenting means for presentingthe queue of unviewed Web pages to the user; and second placing means,responsive to a particular user input, for placing an unviewed Web pageinto another queue.
 27. The data processing system of claim 23, whereinthe data processing system is a server and the user is located at aclient.
 28. The data processing system of claim 23, wherein thescheduling, determining, and placing means are performed by a plug-inexecuting on the data processing system.
 29. The data processing systemof claim 23 wherein the determining means comprises: comparing means forcomparing the retrieved Web page with respect to a correspondingretrieved Web page.
 30. The data processing system of claim 23, whereinthe determining means comprises: comparing means for comparing a lastmodified date in the retrieved Web page with a last modified date for acorresponding retrieved Web page stored in the queue.
 31. The dataprocessing system of claim 23, further comprising: presenting means forpresenting an indicator in association with each respective Web page ofthe plurality of Web pages in which the indicator indicates a changesince a last viewing of each respective Web page by the user.
 32. A dataprocessing system for scheduling viewing of a plurality of selected Webpages, the data processing system comprising: scheduling means forscheduling a respective periodicity for viewing each respective Web pageof a plurality of selected Web pages; determining means, at a specifiedperiodicity, for determining whether the respective Web page haschanged, wherein the respective Web page is a retrieved Web page; andplacing means, responsive to the Web page having changed, for placing auniversal resource locator for the retrieved Web page in a queue ofunviewed Web pages for use in later viewing of the Web page by a user.33. A data processing system for retrieving Web pages, the dataprocessing system comprising: identifying means for identifying a Webpage for retrieval using an identifier; using means for using theidentifier to retrieve the Web page based on a schedule set for the Webpage, wherein the Web page forms a retrieved Web page after the Web pagehas been retrieved; and storing means for storing the retrieved Web pagein a queue with other retrieved Web pages for later viewing.
 34. Thedata processing system of claim 33, wherein the schedule is set by auser input.
 35. The data processing system of claim 33 furthercomprising: displaying means for displaying the retrieved Web pagesstored in the queue in an order specified by a policy.
 36. The dataprocessing system of claim 35, wherein the policy includes at least oneof association of Web pages, frequency of update, degree of change, anda priority of a Web page.
 37. The data processing system of claim 33,wherein the schedule is one of daily, hourly, weekly, or monthly. 38.The data processing system of claim 33 further comprising: comparingmeans for comparing the retrieved Web page with another retrieved Webpage retrieved using the identifier; and preventing means for preventinginitiation of the storing step if the retrieved Web page matches theanother retrieved Web page.
 39. The data processing system of claim 33,wherein the identifier is a universal resource locator.
 40. The dataprocessing system of claim 33, wherein the identifying means, the usingmeans, and the storing means are performed in one of a plug-in, abrowser, or a server process.
 41. The data processing system of claim 33further comprising: displaying means for displaying the Web pages in thequeue in response to a user input.
 42. A computer program product in acomputer readable medium for scheduling viewing of a plurality ofselected Web pages, the computer program product comprising: firstinstructions for scheduling a respective periodicity for viewing eachrespective Web page of a plurality of selected Web pages; secondinstructions, upon retrieval of a respective Web page at a specifiedperiodicity, for determining whether the respective Web page haschanged, wherein the respective Web page is a retrieved Web page; andthird instructions, responsive to the retrieved Web page having changed,for placing the retrieved Web page in a queue of unviewed Web pages forlater viewing by a user.
 43. A computer program product in a computerreadable medium for scheduling viewing of a plurality of selected Webpages, the computer program product comprising: first instructions forscheduling a respective periodicity for viewing each respective Web pageof a plurality of selected Web pages; second instructions, at aspecified periodicity, for determining whether the respective Web pagehas changed, wherein the respective Web page is a retrieved Web page;and third instructions, responsive to the Web page having changed, forplacing a universal resource locator for the retrieved Web page in aqueue of unviewed Web pages for use in later viewing of the Web page bya user.
 44. A computer program product in a computer readable medium forretrieving Web pages, the computer program product comprising: firstinstructions for identifying a Web page for retrieval using anidentifier; second instructions, using the identifier to retrieve theWeb page based on a schedule set for the Web page, wherein the Web pageforms a retrieved Web page after the Web page has been retrieved; andthird instructions for storing the retrieved Web page in a queue withother retrieved Web pages for later viewing.